The present invention relates to world wide area networking. More particularly, the invention provides a technique including a method and system for using a global traffic management system coupled to a plurality of content servers for a service fee. But it would be recognized that the invention has a much broader range of applicability. For example, the invention can also be applied to operation on a private network, and the like.
The Internet is a world wide xe2x80x9csuper-networkxe2x80x9d which connects together millions of individual computer networks and computers. The Internet is generally not a single entity. It is an extremely diffuse and complex system over where no single entity has complete authority or control. Although the Internet is widely know for one of its ways of presenting information through the World Wide Web (herein xe2x80x9cWebxe2x80x9d), there are many other services currently available based upon the general Internet protocols and infrastructure.
The Web is often easy to use for people inexperienced with computers. Information on the Web often is presented on xe2x80x9cpagesxe2x80x9d of graphics and text that contain xe2x80x9clinksxe2x80x9d to other pages either within the same set of data files (i.e., Web site) or within data files located on other computer networks. Users often access information on the Web using a xe2x80x9cbrowserxe2x80x9d program such as one made by Netscape Communications Corporation (now America Online, Inc.) of Mountain View, California or Explorer(trademark) from Microsoft Corporation of Redmond, Washington. Browser programs can process information from Web sites and display the information using graphics, text, sound, and animation. Accordingly, the Web has become a popular medium for advertising goods and services directly to consumers.
As time progressed, usage of the Internet has exploded. There are literally illions of users on the Internet. Usage of the Internet is increasing daily and will ventually be in the billions of users. As usage increases so does traffic on the Internet. Traffic generally refers to the transfer of information from a Web site at a server computer to a user at a client computer. The traffic generally travels through the world wide network of computers using a packetized communication protocol, such as TCP/IP. Tiny packets of information travel from the server computer through the network to the client computer. Like automobiles during xe2x80x9crush hourxe2x80x9d on Highway 101 in Silicon Valley, the tiny packets of information traveling through the Internet become congested. Here, traffic jams that cause a delay in the information from the server to the client occur during high usage hours on the Internet. These traffic jams lead to long wait times at the client location. Here, a user of the client computer may wait for a long time for a graphical object to load onto his/her computer.
From the above, it is seen that an improved way to transfer information over a network is highly desirable.
The present invention relates to a computer server network. More particularly, the present invention relates to an integrated load balancing and content delivery computer network
Embodiments of the present invention include a number of Linux machines (on other operating machines) running software available from the current assignee. This software currently includes eight separate software components that are delivered as a single product. When deployed across a large number of machines, the software creates a network of point of presence (POP) computers that provides a solution for integrated content hosting and traffic management.
Customers using the POP network, according to one embodiment, can store content such as HTML, images, video, sound, software, or the like on the network for fast and highly available access by clients (end users). The network also provides load balancing and high availability for servers outside the network. Customers with generated content, such as search engines, auctions and shopping carts, can use the latter feature to add their own content servers to the network.
The computer network may be monitored using a standard web browser in some embodiments. In particular, HTML interfaces are provided that display the computer networks current status as well as historical statistics.
According to one embodiment of the invention a method for operating a network of point of presence servers sharing a hostname is disclosed. The method includes a user making a request for a web page with a domain name the POP network is authoritative for. The user""s computer sends a request for name resolution of the domain name they are requesting content from to the configured local DNS server (LDNS) for that users computer. The LDNS is typically configured in close proximity to the user""s computer. The LDNS resolves the IP address of the domain name the user""s computer has queried for by sending a query to the Authoritative DNS server (ADNS) for that domain name.
The POP network DNS servers (SPDNS) is designated as an ADNS for all domains the POP network provides service for. On being asked to resolve the domain name from the LDNS on behalf of the user, the SPDNS first determines from the plurality of POP network servers and customer web servers the subset of servers addressable by the requested domain name. In this embodiment, addressable servers are servers that have been configured by either the customer or the POP network to satisfy user requests for content within the requested domain name. These servers have been defined in the POP network configuration as such.
From this subset of servers, the POP network selects the optimal server/servers for the user based on rules defined in the POP network configuration. These rules define how criteria such as POP/customer server health, latency from POP/customer servers to the user making the request, packet loss experienced at each POP, cost associated with each POP/customer server, and the like. These factors are then combined to define the optimal server for a given user making a request for a given domain name. In addition, persistence is defined in embodiments of the present invention for a domain name so that the user is returned to the same POP/customer server on subsequent requests within a definable time. These rules for defining the optimal server are created on a per domain name basis allowing each domain name to be configured independently. The next step includes the SPDNS returning the IP address of the optimal servers to the LDNS making the request, and the LDNS resolving the domain name for the user computer making the request for content with the IPs provided by the SPDNS.
In the present embodiment, the POP network servers are defined in the POP network configuration to be addressable by a requested domain names that represent a customer""s static or cacheable content, a static domain name. The customer""s servers are defined as addressable for domain names that represent dynamic or non-cacheable content, a dynamic domain name. Resolution for either domain name type is performed by the same set of servers controlled and operated by the POP network, the SPDNS. In addition, both domain name types leverage the same infrastructure for determining network and service load as well as configuration.
This technique allows the customer to organize their web site by functions where functions are mapped into domain names. The functions have requirements that define what is needed by a server to satisfy the function. Some functions may only be limited by the ability to access a collection of static content while others require a proprietary application and access to a customer""s database. The domain names are then mapped into resources or servers that can be addressed by the domain name and that satisfy requests for the function that domain name has been defined to support. This method of organization allows individual elements of a web page to be retrieved from different resources. Further, such embodiments provides the SPDNS the control to direct users to an available and optimal server for a given resource. This greatly improves the user experience by reducing connection time, download time, errors, and the like.
According to one aspect of the invention, a method for a computer network is disclosed. The method includes sending a first request from a web client for resolving a first web address of a web page to a client DNS server, sending the first request from the client DNS server to a POP DNS server within a POP server network, using a probe server in the POP server network to determine traffic loads of a plurality of customer web servers, each of the customer web servers storing the web page, using the POP DNS server to determine a customer web server from the plurality of customer web servers, the customer web server having a traffic load lower than traffic loads of other customer web servers in the plurality of customer web servers.
The technique may also include requesting the web page from the customer web server, the web page including static content represented by an embedded URL, sending the web page from the customer web server to the web client, sending a second request from the web client for resolving the URL to the client DNS server, and sending the second request from the client DNS server to the POP DNS server within a POP server network. In one embodiment, the method includes using the probe server to determine service metrics of a plurality of web caches within the POP server network, using the POP DNS server to determine a web cache from the plurality of web caches, the web cache having service metrics more appropriate for the second request than service metrics of other web caches in the plurality of web caches, and requesting the static content from the web cache. Sending the static content to the web client, and outputting the static content with the web client are also contemplated.
According to another aspect of the invention, a method for a computer network is described. The method includes using a web client to enter a first web address of a web page, sending a first request from the web client to a client DNS server to resolve the first web address, sending the first request from the client DNS server to a POP DNS server within a POP server network, using a probe server in the POP server network to determine latencies between the probe server to a plurality of customer web servers, each of the customer web servers having the web page, and using the POP DNS server to determine a customer web server from the plurality of customer web servers in response to the latencies, the customer web server having a latency lower than latencies of other customer web servers in the plurality of customer web servers.
In some cases the steps of requesting the web page from the customer web server, the web page including an embedded URL representing static content, sending the web page from the customer web server to the web client, sending a second request from the web client to the client DNS server for resolving the URL, sending the second request from the client DNS server to the POP DNS server within the POP server network are also included. In the current technique using the probe server to determine loads of a plurality of web caches within the POP server network, using the POP DNS server to determine a web cache from the plurality of web caches in response to the loads, the web cache having a load lower than loads of other web caches in the plurality of web caches, retrieving the static content from the web cache, sending the static content to the web client, and utputting the static content with the web client are also included.